<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>变量</title>
    </head>
    <body>
        <!-- 变量是计算机语言中能储存计算结果或能表示值抽象概念 -->
        <!-- 数值不是数值本身，它们仅仅是一个用于存储数值的容器 -->

        <script>
            //  如何在JS中定义变量
            //  要想使用变量，第一步就是声明它，并给它赋值
            //      var a = 5;  使用var关键字定义变量  等于号表示将5这个值赋给a
            //  当变量被赋值后，就可以使用它了
            //      console.log(a);  变量使用时不能使用引号

            // var a = 5;
            // console.log(a);
            // console.log('a'); // 此时若是将a加上引号 那么这个a就不再是数值a了 他此时表示的是字符串a
            // var b = 19;
            // console.log(b);
            // var c = 66;
            // console.log(c);
            // var d = 'ROC';
            // console.log(d);


            // 改变变量的值
            // 变量的值可以被改变，改变变量值不再需要书写var了
                // var a = 10;     定义变量a并赋初值为10
                // a = 18;         更改变量a的值为18 改变变量的值，不再需要书写var
                // console.log(a); 此时a的值为18

            // var a = 123;
            // a = 456;
            // a = 789;
            // alert(a); 此时警告框中弹出的是a的值789


            // 变量的合法命名
            // 只能由字母、数字、下划线、$组成，但不能以数字开头
            // 不能是关键字或保留字
            // 变量名大小写敏感，a和A两个不同的变量

            // 优秀的变量命名法
            // 驼峰命名法 如：mathTestScore
            // C风格 如：math_test_score
            // 匈牙利命名法：iMathTestScore

            // 变量的默认值
            // 一个变量只定义，但没有赋初值，默认值是undefined
            // 一个变量只有被var定义，并赋初值之后，才算正式初始化完成

            var a;
            console.log(a);
            a = 8;
            console.log(a);


            // 不用var定义，而直接将值赋予它，虽不引发报错，但会产生作用域问题
            // 尝试使用一个既没有被var定义过，也没有赋过值的字符，就会产生引用错误


            // 可以使用逗号同时声明和初始化两个变量
            // var a = 0, b = 0;
        </script>
    </body>
</html>